<template>
	<view class="index">
		<view :class="showPublishPageState?'filter':''">
			<!-- 顶部图标 -->
			<index-header></index-header>
			<!-- banner -->
			<image class="index-banner" src="../../static/img/index/banner.png" mode=""></image>
			<!-- 菜单 -->
			<index-jumpbox @changeShowCP="changeshowCP()"></index-jumpbox>
			<!-- 首页列表 -->
			<index-list :pageType="indexPageIndex" @updateIndex="changeIndexPageIndex"></index-list>
			<u-tabbar :v-model="0" :iconSize="56" :height="100" :midButtonSize="144" inactiveColor="#999999"
				activeColor="#2E3033" :list="tabList" :mid-button="true" @change="changeTab"></u-tabbar>
		</view>
		<!-- CP盲盒 -->
		<u-popup v-model="showCP" mode="center" border-radius="20" headerImg="../../../static/img/index/CP/bg1.png">
			<index-cpbox title="CP盲盒" @close="jumpCPPage()"></index-cpbox>
		</u-popup>
		<u-popup v-model="showVisitor" mode="center" border-radius="20">
			<view class="visitor">
				<image src="../../static/img/index/visitor.png" mode=""></image>
				<view class="" style="width: 454rpx;margin: 0 auto;">
					你当前身份为游客，完成认证可以解锁更多功能哦
				</view>
				<view class="visitor-btn">
					<view class="public-btn public-btn-color">
						去认证
					</view>
					<view class="public-btn" @click="showVisitor=false">
						暂不认证
					</view>
				</view>
			</view>
		</u-popup>
		<publish></publish>
	</view>
</template>

<script>
	//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
	import indexHeader from '../../components/index-header/index-header.vue'
	import indexJumpbox from '../../components/index-jumpbox/index-jumpbox.vue'
	import indexList from '../../components/index-list/index-list.vue'
	import indexCPbox from '../../components/index-cpbox/index-cpbox.vue'
	import publish from '../../components/publish/publish.vue'
	export default {
		// 组件名称
		name: 'demo',
		// 组件参数 接收来自父组件的数据
		props: {},
		// 局部注册的组件,import引入的组件需要注入到对象中才能使用
		components: {
			indexHeader,
			indexJumpbox,
			indexList,
			indexCPbox,
			publish
		},
		// 组件状态值
		data() {
			return {
				indexPageIndex: 0,
				showCP: false,
				showVisitor: true,
				tabList: this.$store.getters.tabList,
			}
		},
		// 计算属性
		computed: {
			showPublishPageState() {
				return this.$store.getters.showPublishPage
			}
		},
		// 侦听器
		watch: {},
		// 组件方法
		methods: {
			changeIndexPageIndex(val) {
				this.indexPageIndex = val

			},
			changeshowCP() {
				this.showCP = !this.showCP;
			},
			jumpCPPage() {
				this.$Router.push({
					path: '/pages/index/CP/index-cproundpage'
				})
			},
			changeTab(e) {
				if (e == 2) {
					this.$store.commit("changeShowPublishPage", true)
				}
			}
		},
		// 以下是生命周期钩子   注：没用到的钩子请自行删除
		/**
		 * 在实例初始化之后，组件属性计算之前，如data属性等
		 */
		beforeCreate() {
			// wx.hideTabBar({
			// 	fail(e) {},
			// 	success() {}
			// })
		},
		/**
		 * 组件实例创建完成，属性已绑定，但DOM还未生成，$ el属性还不存在
		 */
		created() {

		},
		/**
		 * 在挂载开始之前被调用：相关的 render 函数首次被调用。
		 */
		beforeMount() {},
		/**
		 * el 被新创建的 vm.$ el 替换，并挂载到实例上去之后调用该钩子。
		 * 如果 root 实例挂载了一个文档内元素，当 mounted 被调用时 vm.$ el 也在文档内。
		 */
		mounted() {
			console.log()
		},
		/**
		 * 数据更新时调用，发生在虚拟 DOM 重新渲染和打补丁之前。
		 * 你可以在这个钩子中进一步地更改状态，这不会触发附加的重渲染过程。
		 */
		beforeUpdate() {},
		/**
		 * 由于数据更改导致的虚拟 DOM 重新渲染和打补丁，在这之后会调用该钩子。
		 * 当这个钩子被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。
		 */
		updated() {},
		/**
		 * keep-alive 组件激活时调用。 仅针对keep-alive 组件有效
		 */
		activated() {},
		/**
		 * keep-alive 组件停用时调用。 仅针对keep-alive 组件有效
		 */
		deactivated() {},
		/**
		 * 实例销毁之前调用。在这一步，实例仍然完全可用。
		 */
		beforeDestroy() {},
		/**
		 * Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，
		 * 所有的事件监听器会被移除，所有的子实例也会被销毁。
		 */
		destroyed() {}
	}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<!--使用了scoped属性之后，父组件的style样式将不会渗透到子组件中，-->
<!--然而子组件的根节点元素会同时被设置了scoped的父css样式和设置了scoped的子css样式影响，-->
<style scoped lang="scss">
	.index {
		width: 100%;
		height: 100%;
		padding: 0 32rpx;
		background: linear-gradient(#F1EFFFFF 0%, #FFFFFF 20%);
		padding-top: $nav-top-height;

		&-banner {
			margin-top: 32rpx;
			width: 686rpx;
			height: 336rpx;
		}

		.visitor {
			text-align: center;
			padding: 64rpx 32rpx;

			image {
				width: 136rpx;
				height: 136rpx;
			}

			.public-btn {
				width: 440rpx;
				margin: 32rpx auto;
			}
		}
	}
</style>
